home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / gnu / nethack.lha / nethack-3.1 / include / artifact.h < prev    next >
C/C++ Source or Header  |  1992-11-03  |  3KB  |  59 lines

  1. /*    SCCS Id: @(#)artifact.h    3.1    92/11/01    */
  2. /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
  3. /* NetHack may be freely redistributed.  See license for details. */
  4.  
  5. #ifndef ARTIFACT_H
  6. #define ARTIFACT_H
  7.  
  8. #define SPFX_NONE   0x0000000    /* no special effects, just a bonus */
  9. #define SPFX_NOGEN  0x0000001    /* item is special, bequeathed by gods */
  10. #define SPFX_RESTR  0x0000002    /* item is restricted - can't be named */
  11. #define SPFX_INTEL  0x0000004    /* item is self-willed - intelligent */
  12. #define SPFX_SPEEK  0x0000008    /* item can speak */
  13. #define SPFX_SEEK   0x0000010    /* item helps you search for things */
  14. #define SPFX_WARN   0x0000020    /* item warns you of danger */
  15. #define SPFX_ATTK   0x0000040    /* item has a special attack (attk) */
  16. #define SPFX_DEFN   0x0000080    /* item has a special defence (defn) */
  17. #define SPFX_DRLI   0x0000100    /* drains a level from monsters */
  18. #define SPFX_SEARCH 0x0000200    /* helps searching */
  19. #define SPFX_BEHEAD 0x0000400    /* beheads monsters */
  20. #define SPFX_HALRES 0x0000800    /* blocks hallucinations */
  21. #define SPFX_ESP    0x0001000    /* ESP (like amulet of ESP) */
  22. #define SPFX_STLTH  0x0002000    /* Stealth */
  23. #define SPFX_REGEN  0x0004000    /* Regeneration */
  24. #define SPFX_EREGEN 0x0008000    /* Energy Regeneration */
  25. #define SPFX_HSPDAM 0x0010000    /* 1/2 spell damage (on player) in combat */
  26. #define SPFX_HPHDAM 0x0020000    /* 1/2 physical damage (on player) in combat */
  27. #define SPFX_TCTRL  0x0040000    /* Teleportation Control */
  28. #define SPFX_LUCK   0x0080000    /* Increase Luck (like Luckstone) */
  29. #define SPFX_DMONS  0x0100000    /* attack bonus on one monster type */
  30. #define SPFX_DCLAS  0x0200000    /* attack bonus on monsters w/ symbol mtype */
  31. #define SPFX_DFLAG1 0x0400000    /* attack bonus on monsters w/ mflags1 flag */
  32. #define SPFX_DFLAG2 0x0800000    /* attack bonus on monsters w/ mflags2 flag */
  33. #define SPFX_DALIGN 0x1000000    /* attack bonus on non-aligned monsters  */
  34.  
  35. #define SPFX_DBONUS 0x1F00000    /* attack bonus mask */
  36.  
  37. struct artifact {
  38.     unsigned    otyp;
  39.     const char  *name;
  40.     unsigned long spfx;    /* special effect from wielding/wearing */
  41.     unsigned long cspfx;    /* special effect just from carrying obj */
  42.     unsigned long mtype;    /* monster type, symbol, or flag */
  43.     struct attack attk, defn, cary;
  44.     uchar        inv_prop;    /* property obtained by invoking artifact */
  45.     aligntyp    alignment;    /* alignment of bequeathing gods */
  46.     char        class;    /* character class associated with */
  47. };
  48.  
  49. /* invoked properties with special powers */
  50. #define TAMING        (LAST_PROP+1)
  51. #define HEALING        (LAST_PROP+2)
  52. #define ENERGY_BOOST    (LAST_PROP+3)
  53. #define UNTRAP        (LAST_PROP+4)
  54. #define CHARGE_OBJ    (LAST_PROP+5)
  55. #define LEV_TELE    (LAST_PROP+6)
  56. #define CREATE_PORTAL    (LAST_PROP+7)
  57.  
  58. #endif /* ARTIFACT_H */
  59.